layui.use(['table','upload'], function() {
var table = layui.table,
    $ = layui.jquery,
    layer = layui.layer,
    form = layui.form,
    laytpl = layui.laytpl,
    message = parent.message,
	upload = layui.upload;
var tableIns = table.render({
    elem: '#demo',
    height: 'full-132', //容器高度
    url: '../app/menu/list?_'+$.now(),
    where: {order: 'desc'},
    page: true,
    id: 'demo',
    limit: 20,
    cols: [
        [{
            checkbox: true,
            fixed: true
        }, {
            field: 'name',
            title: '菜单名称',
            width: 200,
            sort: true
        }, {
            field: 'parentName',
            title: '上级菜单',
            width: 100,
            sort: true
        }, {
            field: 'imgUrl',
            title: '图片地址',
            width: 200,
            align: 'center',
            templet: '#imgtpl'
        }, {
            field: 'code',
            title: '排序',
            width: 200,
            align: 'center'
        }
        , {
            field: 'url',
            title: '链接',
            width: 200,
            align: 'center'
        }, {
            field: 'enable',
            title: '是否可用',
            width: 100,
            sort: true,
            align: 'center',
            templet: '#enablestpl'
        },{
            fixed: 'right',
            title: '操作',
            width: 200,
            align: 'center',
            toolbar: '#barDemo'
        }]
    ],
    done: function(res, curr, count) {
    	
    },
    loading: true,
});

form.render(null, 'kit-search-form');
$('#kit-search-more').on('click', function() {
    $('.kit-search-mored').toggle();
});
//监听搜索表单提交
form.on('submit(search)', function(data) {
    //带条件查询
    tableIns.reload({
    	where: {
    		order: 'asc',
    		name: data.field.name
    	}
    });
    return false;
});
//监听工具条
table.on('tool(demo)', function(obj) { //注：tool是工具条事件名，test是table原始容器的属性 lay-filter="对应的值"
    var data = obj.data; //获得当前行数据
    var layEvent = obj.event; //获得 lay-event 对应的值
    var tr = obj.tr; //获得当前行 tr 的DOM对象
    console.log(obj.data);
    if (layEvent === 'del') { //删除
        layer.confirm('确定删除该数据', function(index) {
            layer.close(index);
            //向服务端发送删除指令
            var menuIds = Array();
            menuIds.push(data.id);
            $.ajax({
        		type: "POST",
        	    url: "../app/menu/delete",
        	    data: JSON.stringify(menuIds),
        	    dataType: 'JSON',
        	    contentType: 'application/json',
        	    success: function(res){
        	    	if (res.code==0) {
        	        	parent.message.show({
        	                skin:'default',//皮肤  支持:red,orange,cyan,blue,black,default
        	                msg:'操作成功'//提示信息
        	            });
        	        	obj.del(); //删除对应行（tr）的DOM结构
        	        } else {
        	        	layer.msg(res.msg, {icon: 2});
        	        }
        		}
        	});
        });
    } else if (layEvent === 'edit') { //编辑
    	$.get("../app/menu/list",{type : 0},function(res){
			if(res.code==0){
				$.get("../sys/businessdoc/select", function(r){
				var d = {
    	            appmenu: {
    	            	id: data.id,
    	            	name: data.name,
    	            	code:data.code,
    	            	imgUrl: data.imgUrl,
    	            	url:data.url,
    	            	enable: data.enable,
    	            	parentId: data.parentId
    	            },
    	            parentMenu:res.data,
    	            types:r.list
    	        };
				var fileFlg = false;
				//渲染
    	        laytpl($('#edit-tpl').html()).render(d,
    	            function(html) {
    	                var index =layer.open({
    	                    type: 1,
    	                    title: '更新菜单',
    	                    content: html,
    	                    skin: 'layui-layer-rim', //加上边框
    	                    area: ['400px', '400px'],
    	                    btn: ['提交', '取消'],
    	                    yes: function(index, layero) {
    	                    	if($("#name").val()!=""){
	    	                    	if(fileFlg){
	    	                    		uploadInst.config.data={id:$("#id").val(),name:$("#name").val(),code:$("#code").val(),parentId:$("#parentId").val(),enable:$("input[name='enable']:checked").val()} 
    	                    			$('#formEdit').click();
	    	                    	}else{
	    	                    		var menu = new Object(); 
	    	                    		menu.id = $("#id").val()
	    	                    		menu.name = $("#name").val(); 
	    	                    		menu.code=$("#code").val();
	    	                    		menu.url = $("#url").val(); 
	    	                    		menu.parentId = $("#parentId").val(); 
	    	                    		menu.enable = $("input[name='enable']:checked").val(); 
	    	                    		var json = JSON.stringify(menu); 
	    	                    		saveOrUpdate(json);
	    	                    	}
    	                    		layer.close(index); //关闭弹出层
    	                    	}else{
    	                    		layer.msg("菜单名不能为空", {icon: 2});
    	                    	}
    	                    },
    	                    btn2: function(index, layero) {
    	                    	layer.close(index); //关闭弹出层
    	                    },
    	                    success: function() {
	                    		form.render(null, 'form-edit');
    	                    }
    	                });
    	            });
    	        var uploadInst = upload.render({
                    elem: '#menuLogoButton',
                    url: '/comm-cg/app/menu/update',
                    accept: 'images',
                    auto: false, //选择文件后不自动上传
                    bindAction: '#formEdit', //指向一个按钮触发上传
                    choose: function(obj){
                	    //将每次选择的文件追加到文件队列
                	    var files = obj.pushFile();
                	    
                	    //预读本地文件，如果是多文件，则会遍历。(不支持ie8/9)
                	    obj.preview(function(index, file, result){
                	      //这里还可以做一些 append 文件列表 DOM 的操作
                	      $('#menuLogo').attr('src', result); //图片链接（base64）
                	      fileFlg=true;
                	      //obj.upload(index, file); //对上传失败的单个文件重新上传，一般在某个事件中使用
                	      //delete files[index]; //删除列表中对应的文件，一般在某个事件中使用
                	    });
                	  }
                    ,done: function(res){
                      //如果上传失败
                      if(res.code != 0){
                    	  layer.msg(res.msg, {icon: 2});
                      }else{
                    	  message.show({
          	                skin:'default',//皮肤  支持:red,orange,cyan,blue,black,default
          	                msg:'操作成功'//提示信息
          	            });
          	        	tableIns.reload({where: {order: 'desc'}});
                      }
                      //上传成功
                    }
                    ,error: function(){
                      
                    }
                  });
				});
			}else {
	        	layer.msg(res.msg, {icon: 2});
	        }
		});
    }
});

$('.kit-search-btns').children('a').off('click').on('click', function() {
    var $that = $(this),
    action = $that.data('action');
    switch (action) {
        case 'add':
        	 $.get("../app/menu/list",{type : 0},function(res){
        	  if(res.code==0){
        			 
        		$.get("../sys/businessdoc/select", function(r){
             		
    	        var d = {
    	            appmenu: {
    	            	id: '',
    	            	name: '',
    	            	code:'',
    	            	imgUrl: '',
    	            	url:'',
    	            	enable: 1
    	            },
    	            parentMenu:res.data,
    	            types:r.list
    	        };
    	        //渲染
    	        laytpl($('#edit-tpl').html()).render(d,
    	            function(html) {
    	                var index =layer.open({
    	                    type: 1,
    	                    title: '新增菜单',
    	                    content: html,
    	                    skin: 'layui-layer-rim', //加上边框
    	                    area: ['400px', '400px'],
    	                    btn: ['提交', '取消'],
    	                    yes: function(index, layero) {
    	                    	if($("#name").val()!=""){
	    	                    	var _imgSrc = $("#menuLogo").attr("src");
	    	                    	if(_imgSrc!=null&&_imgSrc!=""){
	    	                    		uploadInst.config.data={name:$("#name").val(),code:$("#code").val(),parentId:$("#parentId").val(),enable:$("input[name='enable']:checked").val()} 
	    	                    		$('#formEdit').click();
	    	                    	}else{
	    	                    		var menu = new Object(); 
	    	                    		menu.name = $("#name").val(); 
	    	                    		menu.parentId = $("#parentId").val(); 
	    	                    		menu.code = $("#code").val(); 
	    	                    		menu.url = $("#url").val(); 
	    	                    		menu.enable = $("input[name='enable']:checked").val(); 
	    	                    		var json = JSON.stringify(menu); 
	    	                    		saveOrUpdate(json);
	    	                    	}
    	                    		layer.close(index); //关闭弹出层
    	                    	}else{
    	                    		layer.msg("菜单名不能为空", {icon: 2});
    	                    	}
    	                    },
    	                    btn2: function(index, layero) {
    	                    	layer.close(index); //关闭弹出层
    	                    },
    	                    success: function() {
	                    		form.render(null, 'form-edit');
    	                    }
    	                });
    	            });
    	        var uploadInst = upload.render({
                    elem: '#menuLogoButton',
                    url: '/comm-cg/app/menu/save',
                    accept: 'images',
                    auto: false, //选择文件后不自动上传
                    bindAction: '#formEdit', //指向一个按钮触发上传
                    choose: function(obj){
                	    //将每次选择的文件追加到文件队列
                	    var files = obj.pushFile();
                	    
                	    //预读本地文件，如果是多文件，则会遍历。(不支持ie8/9)
                	    obj.preview(function(index, file, result){
                	      //这里还可以做一些 append 文件列表 DOM 的操作
                	      $('#menuLogo').attr('src', result); //图片链接（base64）
                	      //obj.upload(index, file); //对上传失败的单个文件重新上传，一般在某个事件中使用
                	      //delete files[index]; //删除列表中对应的文件，一般在某个事件中使用
                	    });
                	  }
                    ,done: function(res){
                      //如果上传失败
                      if(res.code != 0){
                    	  layer.msg(res.msg, {icon: 2});
                      }else{
                    	  message.show({
          	                skin:'default',//皮肤  支持:red,orange,cyan,blue,black,default
          	                msg:'操作成功'//提示信息
          	            });
          	        	tableIns.reload({where: {order: 'desc'}});
                      }
                      //上传成功
                    }
                    ,error: function(){
                      
                    }
                  });
        			 });
        		 }else {
      	        	layer.msg(res.msg, {icon: 2});
      	        }
         		 
        	 });
        break;
    case 'del-bulk':
        var d = table.checkStatus('demo');
        if (d.data.length === 0) {
            layer.msg('请选择要删除的数据');
            return;
        }
        var data = d.data,
            ids = [];
        layui.each(data, function(index, item) {
            ids.push(item.id);
        });
        layer.confirm('确定删除选中的数据', function(index) {
            layer.close(index);
            //向服务端发送删除指令
            $.ajax({
        		type: "POST",
        	    url: "../app/menu/delete",
        	    data: JSON.stringify(ids),
        	    dataType: 'JSON',
        	    contentType: 'application/json',
        	    success: function(res){
        	    	if (res.code==0) {
        	        	parent.message.show({
        	                skin:'default',//皮肤  支持:red,orange,cyan,blue,black,default
        	                msg:'操作成功'//提示信息
        	            });
        	        	tableIns.reload({where: {sidx: '', order: 'desc'}});
        	        } else {
        	        	layer.msg(res.msg, {icon: 2});
        	        }
        		}
        	});
        });
        break;
    }
});

saveOrUpdate = function (datas) {
	var url = $("#id").val() == null ? "../app/menu/save2" : "../app/menu//update2";
	$.ajax({
		type: "POST",
		url: url,
	    data: datas,
	    dataType: 'JSON',
	    contentType: 'application/json',
	    success: function(res){
	    	if (res.code==0) {
	        	message.show({
	                skin:'default',//皮肤  支持:red,orange,cyan,blue,black,default
	                msg:'操作成功'//提示信息
	            });
	        	tableIns.reload({where: {order: 'desc'}});
	        } else {
	        	layer.msg(res.msg, {icon: 2});
	        }
		}
	});
}

});